// 登录注册的代码

// 表示监听了两个a标签的事件
$(".box  a").on("click", function () {
  // 指的是a标签的dom对象
  $(this).parents(".box").hide().siblings(".box").show() // 隐藏当前的a标签所在的元素盒子
  // 一个隐藏 另外一个显示
})

// 完成表单的校验
// 生成校验规则
function createRules() {
  return {
    // 校验规则
    fields: {
      // 用户名
      username: {
        validators: {
          notEmpty: {
            message: "用户名不能为空",
          },
          stringLength: {
            //   长度
            min: 2,
            max: 15,
            message: "用户名长度为2-15位之间",
          },
        },
      },
      // 密码
      password: {
        validators: {
          notEmpty: {
            message: "密码不能为空",
          },
          stringLength: {
            //   长度
            min: 6,
            max: 15,
            message: "密码长度为6-15位之间",
          },
        },
      },
    },
  }
}
// form表单自动事件 屏蔽这个事件
$(".register form")
  .bootstrapValidator(createRules())
  .on("success.form.bv", function (event) {
    //   屏蔽form表单的默认事件
    event.preventDefault()
    // 此时需要调用注册接口
    // axios.post()
    axios({
      method: "post",
      url: "/api/register",
      // 请求体参数
      data: $(".register form").serialize(), // $(".register form").serialize()会生成一个字符串
      // data: "username=1&password=2", // 请求体参数 application/json
      // params: {}, // 查询参数
    }).then(({ code, message }) => {
      // result是返回的结果
      if (code === 0) {
        // 说明 注册成功
        toastr.success(message) // 提示成功
        // 清空输入框
        $(".register input").val("") // 清空所有的输入框
        // 将当前的注册的盒子隐藏 把登录的盒子显示
        $(".register").hide().next().show()
      } else {
        // 说明注册失败
        toastr.warning(message)
      }
    })
  })

// 对登录表单进行进行校验
$(".login form")
  .bootstrapValidator(createRules())
  .on("success.form.bv", (event) => {
    event.preventDefault() // 屏蔽事件
    // 调用登录接口
    axios({
      method: "post",
      url: "/api/login",
      // 请求体参数
      data: $(".login form").serialize(), // $(".register form").serialize()会生成一个字符串
      // data: "username=1&password=2", // 请求体参数 application/json
      // params: {}, // 查询参数
    }).then(({ code, message, token }) => {
      // 会拿到结果
      if (code === 0) {
        // 此时认为登录成功的标志
        // token - 前后分离项目的令牌
        // 有token 就表示你当前是登录状态 没有token 表示未登录状态
        localStorage.setItem("token", token) // 将令牌放入前端缓存
        // 跳到主页
        location.href = "./index.html" // 跳转到主页
      } else {
        // 此时认为登录失败
        toastr.warning(message)
      }
    })
  })
